package HeBingLianBiao;

public class ShanChuChongFu {
    public static void main(String[] args) {
        // 1,1,2
        int[] ints = {1, 1, 2};
        int i = removeDuplicates(ints);
        System.out.println(i);

    }
    public static int removeDuplicates(int []nums){
        // 定义一个慢指针i，起始指向第一个元素
        int i = 0;
        // 定义一个快指针j，起始指向第二个元素
        int j;
        // 从第二个元素用快指针开始遍历
        for(j = 1; j < nums.length; j++){
            if (nums[j] != nums[i]){ // 如果当前指针指向的元素不等于慢指针指向的元素
                i++; // 先让i指针后移一位
// 再把当前的值存放到i指针后移的位置。
// 情况1，如果是[1,2,2]这种情况，起始i=0 j=1,2!=1进入循环后i=1,nums[1]=nums[1]相当于没变
// 情况2，如果是[1,1,2]这种情况，起始i=0 j=1,1==1当轮不进入循环，第二轮循环j=2，注意i仍为0,2!=1可进入循环i=1,nums[1]=num[2]，用第三个值2替代第二个值   1
                nums[i] = nums[j];
            }else {
                continue;
            }
        }
        return i+1; // 当前的i值指向数组中最后一个值，但由于i是从0开始，结果要返回重复值数量，故加1
    }
}
